﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using com.clinica.business.BE.acttar;
using com.clinica.business.BE.comun;
using LiclUtil;
using LiclActTar;
using LiclActTar.Views;
using System.Text;

namespace wesiGestClinica.acttar.Controles
{
    public partial class UCBuscarServicio : System.Web.UI.UserControl
    {
        LiclTarifariosController oController = new LiclTarifariosController();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    lbl_TituloModulo.Text = "Búsqueda de Servicios";
                    IniciarControles();
                    if (TipoBus == 2 && txt_DescripcionControl.Text.Trim() != string.Empty)
                        btnBuscarControl_Click(null, null);
                }
                catch (Exception ex)
                {

                }
                dg_ServicioControl.RowCommand += new GridViewCommandEventHandler(dg_ServicioControl_RowCommand);
            }
            lblMensaje.Visible = false;

        }
       
        #region eventos
        protected void rbu_Codigo_CheckedChanged(object sender, EventArgs e)
        {
            TipoBus = 1;
            txt_CodigoControl.ReadOnly = false;
            txt_Descripcion.ReadOnly = true;            
            rbu_PorDescripcion.Checked = false;
            txt_CodigoControl.Text = string.Empty;
            txt_DescripcionControl.Text = string.Empty;
            txt_CodigoControl.Focus();
        }

        protected void rbu_Descripcion_CheckedChanged(object sender, EventArgs e)
        {
            TipoBus = 2;
            txt_CodigoControl.ReadOnly = true;
            txt_Descripcion.ReadOnly = false;  
            rbu_PorCodigo.Checked = false;
            txt_CodigoControl.Text = string.Empty;
            txt_DescripcionControl.Text = string.Empty;
            txt_DescripcionControl.Focus();
        }

        protected void btnBuscarControl_Click(object sender, EventArgs e)
        {
            ServiciosBE oTarifa = new ServiciosBE();
            dg_ServicioControl.DataSource = new List<TarifarioBE>();
            dg_ServicioControl.DataBind();

            if (rbu_PorDescripcion.Checked)
            {
                if (txt_Descripcion.Text.Trim() != string.Empty)
                {
                    oTarifa.Descripcion = txt_DescripcionControl.Text.Trim();
                    BuscarServicios(oTarifa);
                }
                else
                {
                    lblMensaje.Visible = true;
                    lblMensaje.Text = " Debe ingresar al menos una descripción.";

                }
            }
            else
            {
                if (txt_CodigoControl.Text.Trim() != string.Empty)
                {
                    try
                    {
                        oTarifa.Codigo = int.Parse(txt_CodigoControl.Text.Trim());
                    }
                    catch (Exception)
                    {
                        lblMensaje.Visible = true;
                        lblMensaje.Text = " Debe ingresar un código.";
                    }
                    BuscarServicios(oTarifa);
                }
                else
                {
                    lblMensaje.Visible = true;
                    lblMensaje.Text = " Debe ingresar un Numero de Tarifa.";
                }
            }
        }
        void dg_ServicioControl_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Seleccionar")
            {
                GridViewRow fila = (GridViewRow)((ImageButton)e.CommandSource).NamingContainer;
                dg_ServicioControl.SelectedIndex = fila.RowIndex;
                string[] arr = e.CommandArgument.ToString().Split(new char[] { '|' });
                hdfCodigoControl.Value = arr[0];
                hdfDescripcionControl.Value = arr[1];
                ScriptManager.RegisterStartupScript(this, typeof(Page), "Envio", "enviarParam('" + arr[0] + "','" + arr[1] + "','" + arr[2] + "');", true);
            }
        }
        #endregion
        #region Metodos
        public void IniciarControles()
        {
            txt_CodigoControl.Text = string.Empty;
            txt_DescripcionControl.Text = string.Empty;
            if (TipoBus == 1)
            {
                rbu_PorCodigo.Checked = true;
                rbu_Codigo_CheckedChanged(null, null);
            }
            else
            {
                rbu_PorDescripcion.Checked = true;
                rbu_Descripcion_CheckedChanged(null, null);
            }
            ServiciosBE obj = new ServiciosBE();
            List<ServiciosBE> lstServicios = new List<ServiciosBE>();
            lstServicios.Add(obj);
            dg_ServicioControl.DataSource = lstServicios;
            dg_ServicioControl.DataBind();
        }
        public void BuscarServicios(ServiciosBE obj)
        {
            List<ServiciosBE> lstServicios = new List<ServiciosBE>();
            lstServicios = oController.Obtener_Servicios(obj);
            if (lstServicios.Count > 0)
            {
                dg_ServicioControl.DataSource = lstServicios;
                dg_ServicioControl.DataBind();
                lbl_CantidadControl.Text = lstServicios.Count.ToString() + " Registros(s) encontrados";
            }
            else
            {
                lblMensaje.Visible = true;
                lblMensaje.Text = lblMensaje.Text + " No se ha encontrado Servicios para el criterio de busqueda.";
                lbl_CantidadControl.Text = "0 Registros(s) encontrados";
            }
        }
        #endregion
        #region Propiedades
        public int TipoBus { get; set; }

        public TextBox txt_Descripcion
        {
            get { return txt_DescripcionControl; }
            set { txt_DescripcionControl = value; }
        }
        public TextBox txt_Codigo
        {
            get { return txt_CodigoControl; }
            set { txt_CodigoControl = value; }
        }

        public Button btn_Buscar
        {
            get { return btnBuscarControl; }
            set { btnBuscarControl = value; }
        }
        public RadioButton rbu_PorCodigo
        {
            get { return rbu_Codigo; }
            set { rbu_Codigo = value; }
        }
        public RadioButton rbu_PorDescripcion
        {
            get { return rbu_Descripcion; }
            set { rbu_Descripcion = value; }
        }
        public GridView dgServicios
        {
            get { return dg_ServicioControl; }
            set { dg_ServicioControl = value; }
        }
        public HiddenField hdfCodigo
        {
            get { return hdfCodigoControl; }
            set { hdfCodigoControl = value; }
        }
        public HiddenField hdfDescripcion
        {
            get { return hdfDescripcionControl; }
            set { hdfDescripcionControl = value; }
        }       
        #endregion

       
    }   
}